package com.hsjk.szwj.module.train.service;

import com.hsjk.szwj.framework.common.pojo.PageResult;
import com.hsjk.szwj.module.train.controller.admin.vo.AdminCourseLiveCreateReqVO;
import com.hsjk.szwj.module.train.controller.admin.vo.AdminCourseLiveDetailRespVO;
import com.hsjk.szwj.module.train.controller.admin.vo.AdminCourseLivePageReqVO;
import com.hsjk.szwj.module.train.controller.admin.vo.AdminCourseLivePageRespVO;
import com.hsjk.szwj.module.train.controller.admin.vo.AdminCourseLivePageSearchRespVO;
import com.hsjk.szwj.module.train.controller.admin.vo.AdminCourseLiveSearchPageReqVO;
import com.hsjk.szwj.module.train.controller.admin.vo.AdminCourseLiveUpdateReqVO;

/**
 * @author chenjiawei
 * @desc
 * @Date 2023/10/28 16:05
 **/
public interface ICourseLiveService {
    /**
     * 分页获取课程直播列表
     *
     * @param reqVO
     * @return com.hsjk.szwj.framework.common.pojo.PageResult<com.hsjk.szwj.module.train.controller.admin.vo.AdminCourseLivePageRespVO>
     * @author chenjiawei
     * @date 2023/10/28 4:10 PM
     **/
    PageResult<AdminCourseLivePageRespVO> getCourseLivePage(AdminCourseLivePageReqVO reqVO);

    /**
     * 课程直播分页查询
     *
     * @author chenjiawei
     * @date 2023/10/28 6:48 PM
     * @param reqVO
     * @return com.hsjk.szwj.framework.common.pojo.PageResult<com.hsjk.szwj.module.train.controller.admin.vo.AdminCourseLivePageSearchRespVO>
     **/
    PageResult<AdminCourseLivePageSearchRespVO> getCourseLiveSearchPage(AdminCourseLiveSearchPageReqVO reqVO);

    /**
     * 获取课程直播详情
     *
     * @param id
     * @return com.hsjk.szwj.module.train.controller.admin.vo.AdminCourseLiveDetailRespVO
     * @author chenjiawei
     * @date 2023/10/28 4:19 PM
     **/
    AdminCourseLiveDetailRespVO getCourseLiveDetail(Long id);

    /**
     * 新增课程直播
     *
     * @param reqVO
     * @return int
     * @author chenjiawei
     * @date 2023/10/28 4:21 PM
     **/
    Boolean createCourseLive(AdminCourseLiveCreateReqVO reqVO);

    /**
     * 更新课程直播
     *
     * @param reqVO
     * @return int
     * @author chenjiawei
     * @date 2023/10/28 4:22 PM
     **/
    Boolean updateCourseLive(AdminCourseLiveUpdateReqVO reqVO);

    /**
     * 删除课程直播
     *
     * @param id
     * @return int
     * @author chenjiawei
     * @date 2023/10/28 4:23 PM
     **/
    Boolean deleteCourseLive(Long id);
}
